﻿package com.sh.game.display
{
    import __AS3__.vec.*;
    import com.sh.game.loader.*;
    import flash.display.*;
    import flash.geom.*;

    public class XMLClipData extends Object
    {
        public var data:Array;
        public var bitmapDatas:Vector.<BitmapData>;

        public function XMLClipData(param1, param2:XML, param3:Boolean)
        {
            var _loc_4:BitmapData = null;
            var _loc_5:Array = null;
            var _loc_6:Object = null;
            var _loc_7:Vector.<String> = null;
            var _loc_8:Vector.<BitmapData> = null;
            var _loc_9:Object = null;
            var _loc_10:int = 0;
            var _loc_11:int = 0;
            var _loc_12:String = null;
            var _loc_13:Object = null;
            var _loc_14:BitmapData = null;
            var _loc_15:MovieAssets = null;
            var _loc_16:Object = null;
            this.data = new Array();
            if (param1 is BitmapData)
            {
                _loc_4 = param1 as BitmapData;
                _loc_5 = new Array();
                _loc_7 = new Vector.<String>;
                for each (_loc_9 in param2.SubTexture)
                {
                    
                    _loc_5[String(_loc_9.@name)] = [_loc_9.@x, _loc_9.@y, _loc_9.@width, _loc_9.@height, _loc_9.@frameX, _loc_9.@frameY, _loc_9.@frameWidth, _loc_9.@frameHeight];
                    _loc_7.push(String(_loc_9.@name));
                }
                _loc_7.sort(Array.CASEINSENSITIVE);
                _loc_8 = new Vector.<BitmapData>;
                _loc_10 = 0;
                _loc_11 = 0;
                for each (_loc_12 in _loc_7)
                {
                    
                    _loc_13 = _loc_5[_loc_12];
                    if (int(_loc_13[6]) == 0)
                    {
                        _loc_10 = _loc_13[2];
                    }
                    else
                    {
                        _loc_10 = _loc_13[6];
                    }
                    if (int(_loc_13[7]) == 0)
                    {
                        _loc_11 = _loc_13[3];
                    }
                    else
                    {
                        _loc_11 = _loc_13[7];
                    }
                    if (param3)
                    {
                        this.data.push([int(_loc_13[4]), int(_loc_13[5])]);
                        _loc_14 = new BitmapData(_loc_13[2], _loc_13[3], true, 0);
                        _loc_14.copyPixels(_loc_4, new Rectangle(_loc_13[0], _loc_13[1], _loc_13[2], _loc_13[3]), new Point(0, 0), null, null, false);
                    }
                    else
                    {
                        _loc_14 = new BitmapData(_loc_10, _loc_11, true, 0);
                        _loc_14.copyPixels(_loc_4, new Rectangle(_loc_13[0], _loc_13[1], _loc_13[2], _loc_13[3]), new Point(_loc_13[4] * -1, _loc_13[5] * -1), null, null, false);
                    }
                    _loc_8.push(_loc_14);
                    this.bitmapDatas = _loc_8;
                }
            }
            else if (param1 is MovieAssets)
            {
                _loc_15 = param1;
                this.bitmapDatas = _loc_15.frameSet;
                for each (_loc_16 in param2.children())
                {
                    
                    this.data.push([-int(_loc_16.@x), -int(_loc_16.@y)]);
                }
            }
            return;
        }// end function

        public function dispose() : void
        {
            var _loc_1:BitmapData = null;
            if (this.bitmapDatas)
            {
                for each (_loc_1 in this.bitmapDatas)
                {
                    
                    _loc_1.dispose();
                }
                this.bitmapDatas.length = 0;
                this.bitmapDatas = null;
            }
            if (this.data)
            {
                this.data.length = 0;
                this.data = null;
            }
            return;
        }// end function

    }
}
